home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-28 | 5.0 KB | 205 lines | [TEXT/MPS ] |
- /*
- File: BufferTests.cp
-
- Copyright: © 1991-1994 by Apple Computer, Inc.
- All rights reserved.
-
- Part of the AOCE Sample SMSAM Package. Consult the license
- which came with this software for your specific legal rights.
-
- */
-
-
-
- #if debug
-
- #ifndef __TUPLETESTS__
- #include "TupleTests.h"
- #endif
-
- #ifndef __STDLIB__
- #include "StdLib.h"
- #endif
-
- #ifndef __MEMORY__
- #include "Memory.h"
- #endif
-
- #ifndef __BUFFER__
- #include "Buffer.h"
- #endif
-
- #pragma segment BufferTests
-
- /***********************************|****************************************/
-
- Boolean
- SetLengthTest ( ABuffer& buffer, unsigned long trials = 100, unsigned long maxSize = 1024 )
- {
- TEST_REPORT(SetLengthTest ( ABuffer&, unsigned long, unsigned long ));
-
- maxSize++;
-
- while ( trials-- > 0 )
- {
- unsigned long requestedLength = (unsigned long) rand () % maxSize;
- unsigned long actualLength = buffer.SetPhysicalLength ( requestedLength );
-
- if ( !ASSERT ( actualLength == requestedLength ) )
- {
- chris << "buffer.SetLength ( " << requestedLength << " ) -> " << actualLength << '\n';
- chris << buffer << '\n';
- return false;
- }
- }
-
- return true;
- }
-
- /***********************************|****************************************/
-
- Boolean
- InvariantTest ( const ABuffer& buffer )
- {
- TEST_REPORT(InvariantTest ( const ABuffer& buffer ));
- ASSERT_RETURN_ZERO ( buffer == buffer );
- ASSERT_RETURN_ZERO ( !( buffer != buffer ) );
- ASSERT_RETURN_ZERO ( buffer.GetPhysicalStart () == (const void*) buffer );
- return true;
- }
-
- /***********************************|****************************************/
-
- Boolean
- EqualityTest ( const ABuffer& a, const void* b, unsigned long c )
- {
- TEST_REPORT(EqualityTest ( const ABuffer& a, const void* b, unsigned long c ));
- ASSERT_RETURN_ZERO ( a.GetPhysicalLength () == c );
- ASSERT_RETURN_ZERO ( memcmp ( a.GetPhysicalStart (), b, (unsigned int) c ) == 0 );
- return true;
- }
-
- /***********************************|****************************************/
-
- Boolean
- EqualityTest ( const ABuffer& a, const ABuffer& b )
- {
- TEST_REPORT(EqualityTest ( const ABuffer& a, const ABuffer& b ));
- ASSERT_RETURN_ZERO ( a.GetPhysicalLength () == b.GetPhysicalLength () );
- ASSERT_RETURN_ZERO ( memcmp ( a.GetPhysicalStart (), b.GetPhysicalStart (), (unsigned int) a.GetPhysicalLength () ) == 0 );
- ASSERT_RETURN_ZERO ( a == b );
- ASSERT_RETURN_ZERO ( b == a );
- ASSERT_RETURN_ZERO ( !( a != b ) );
- ASSERT_RETURN_ZERO ( !( b != a ) );
- return true;
- }
-
- /***********************************|****************************************/
-
- Boolean
- AssignConstTest ( const ABuffer& a )
- {
- TEST_REPORT(AssignConstTest ( const ABuffer& a ));
- CBuffer b ( a );
- ASSERT_RETURN_ZERO ( EqualityTest ( a, b ) );
- CBuffer c = a;
- ASSERT_RETURN_ZERO ( EqualityTest ( a, c ) );
- return true;
- }
-
- /***********************************|****************************************/
-
- Boolean
- AssignTest ( ABuffer& a )
- {
- TEST_REPORT(AssignTest ( ABuffer& a ));
- ASSERT_RETURN_ZERO ( AssignConstTest ( a ) );
- return true;
- }
-
- /***********************************|****************************************/
-
- Boolean
- TestSuite ( ABuffer& buffer )
- {
- TEST_REPORT(TestSuite ( ABuffer& buffer ));
- ASSERT_RETURN_ZERO ( InvariantTest ( buffer ) );
- ASSERT_RETURN_ZERO ( SetLengthTest ( buffer ) );
- ASSERT_RETURN_ZERO ( AssignTest ( buffer ) );
- ASSERT_RETURN_ZERO ( InvariantTest ( buffer ) );
- return true;
- }
-
- /***********************************|****************************************/
-
- Boolean
- CBufferTests ()
- {
- TEST_REPORT(CBufferTests);
-
- const unsigned long kSmallSize = 1;
- const unsigned long kBigSize = 256;
-
- {
- // CBuffer::CBuffer ( unsigned long length )
- {
- CBuffer buffer ( kBigSize );
- ASSERT_RETURN_ZERO ( buffer.GetPhysicalLength () == kBigSize );
- ASSERT_RETURN_ZERO ( TestSuite ( buffer ) );
- }
-
- {
- CBuffer buffer ( kSmallSize );
- ASSERT_RETURN_ZERO ( buffer.GetPhysicalLength () == kSmallSize );
- ASSERT_RETURN_ZERO ( TestSuite ( buffer ) );
- }
- }
-
- {
- // CBuffer::CBuffer ( const void* source, unsigned long length )
- {
- char source [ kBigSize ];
- CBuffer buffer ( source, kBigSize );
- ASSERT_RETURN_ZERO ( EqualityTest ( buffer, source, kBigSize ) );
- ASSERT_RETURN_ZERO ( TestSuite ( buffer ) );
- }
- {
- char source [ kSmallSize ];
- CBuffer buffer ( source, kSmallSize );
- ASSERT_RETURN_ZERO ( EqualityTest ( buffer, source, kSmallSize ) );
- ASSERT_RETURN_ZERO ( TestSuite ( buffer ) );
- }
- }
-
- {
- // CBuffer::CBuffer ( const ABuffer& )
- {
- const CBuffer source ( kBigSize );
- CBuffer buffer ( source );
- ASSERT_RETURN_ZERO ( EqualityTest ( buffer, source ) );
- ASSERT_RETURN_ZERO ( TestSuite ( buffer ) );
- }
- {
- const CBuffer source ( kSmallSize );
- CBuffer buffer ( source );
- ASSERT_RETURN_ZERO ( EqualityTest ( buffer, source ) );
- ASSERT_RETURN_ZERO ( TestSuite ( buffer ) );
- }
- }
-
- return true;
- }
-
- /***********************************|****************************************/
-
- void BufferTests ()
- {
- CBufferTests ();
- // CPrefixBufferTests ();
- // CWrapperBufferTests ();
- }
-
- /***********************************|****************************************/
-
- #endif // debug
-